// common.js 中 模块暴露(导出)就是导出module.exports的值
// exports是指向默认的模块对象的一个引用对象 => 模块对象的引用

console.log(module.exports);  // module.exports 的默认值是空对象
console.log(module.exports === exports);

// 2种导出方式
// 指定新的模块数据
// 向默认模块对象中添加属性或方法

// module.exports = 3  // 指定新的模块数据

//向默认模块对象中添加属性或方法
module.exports.a = 'abc'
// module.exports = {}  //如果创建了新对象 那么exports.b 就不能生效  
exports.b = function () {
  console.log('b()')
}

// 问题:为什么 exports = 5 不能修改模块数据
// 原因: 没有修改module.exports的值, 也没改module.exports所指向的对象的内部属性


// 例:
/* 
const m = {
  exports: {}
}
let exports = m.exports
m.exports.xxx = value // 改变属性
exports.xxx = value   // 改变属性
m.exports = value     // 改变值
exports = value       // 既没改变属性也没改变值
*/